package com.example.dormitorymanagement.controller;

import java.util.Date;

//package com.example.dormitorymanagement.controller;
//
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.example.dormitorymanagement.entity.Floor;
//import com.example.dormitorymanagement.entity.Service;
//import com.example.dormitorymanagement.mapper.FloorMapper;
//import com.example.dormitorymanagement.service.impl.FloorServiceImpl;
//import com.example.dormitorymanagement.service.impl.ServiceServiceImpl;
//import com.example.dormitorymanagement.service.impl.suthorityservice;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//import org.springframework.stereotype.Controller;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpSession;
//import java.awt.geom.FlatteningPathIterator;
//import java.time.OffsetDateTime;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * <p>
// *  前端控制器
// * </p>
// *
// * @author admin
// * @since 2021-06-06
// */
//@RestController
//@RequestMapping("/floor")
//@Api(tags = "楼层管理，权限低的只能进行楼层的查询，权限高的可以进行楼层的增删改查")
//public class FloorController {
//
//    @Autowired
//    private FloorServiceImpl floorServiceimpl;
//
//    @Autowired
//    private FloorMapper floorMapper;
//
//    @Autowired
//    private com.example.dormitorymanagement.service.impl.suthorityservice suthorityservice;
//
//    @PostMapping (value = "/addormodify")
//    @ApiOperation(value = "增加或者修改")
//    public Map<String,Object> addormodify(@RequestBody Floor floor, HttpServletRequest request)
//    {
//
//        Map<String,Object> map = suthorityservice.verification(request);
//
//        if (map.size() != 0)
//        {
//            return map;
//        }
//
//        if (floor.getId() != null && floor.getId() != 0)
//        {
//            //修改
//
//            QueryWrapper<Floor> floorQueryWrapper = new QueryWrapper<>();
//
//            floorQueryWrapper.eq("floor",floor.getFloor()).eq("number",floor.getNumber());
//
//            Integer integer = floorMapper.selectCount(floorQueryWrapper);
//
//            if (integer == 1)
//            {
//                map.put("stat", false);
//
//                map.put("message", "修改失败，该宿舍已存在");
//
//                return map;
//            }
//
//            if (floorServiceimpl.updateById(floor))
//            {
//                map.put("stat", false);
//
//                map.put("message", "修改成功");
//
//                return map;
//            }
//
//            map.put("stat", false);
//
//            map.put("message", "修改失败，请联系管理员");
//
//            return map;
//
//        }
//
//        //增加
//
//        QueryWrapper<Floor> floorQueryWrapper = new QueryWrapper<>();
//
//        floorQueryWrapper.eq("floor",floor.getFloor()).eq("number",floor.getNumber());
//
//        Integer integer = floorMapper.selectCount(floorQueryWrapper);
//
//        if (integer == 1)
//        {
//            map.put("stat", false);
//
//            map.put("message", "新增失败，该宿舍已存在");
//
//            return map;
//        }
//
//        if (floorServiceimpl.save(floor))
//        {
//            map.put("stat", true);
//
//            map.put("message", "新增成功");
//
//            return map;
//        }
//
//        map.put("stat", false);
//
//        map.put("message", "新增失败，请联系管理员");
//
//        return map;
//
//    }
//
//    @GetMapping(value = "/deletefloor")
//    @ApiOperation(value = "通过id来删除楼层管理对象")
//    public Map<String,Object> deletefloor(@ApiParam(name = "id",value = "通过id来删除数据",required = true) @RequestParam(name = "id") Integer id,HttpServletRequest request)
//    {
//        Map<String,Object> map = suthorityservice.verification(request);
//
//        if (map.size() != 0)
//        {
//            return map;
//        }
//
//        UpdateWrapper<Floor> floorUpdateWrapper = new UpdateWrapper<>();
//
//        floorUpdateWrapper.eq("id",id);
//
//        int delete = floorMapper.delete(floorUpdateWrapper);
//
//        if (delete == 0)
//        {
//            map.put("stat",false);
//            map.put("message","删除失败");
//
//            return map;
//        }
//
//        map.put("stat",true);
//        map.put("message","删除成功");
//
//        return map;
//
//    }
//
//    @GetMapping(value = "/getfloornumber")
//    @ApiOperation(value = "获取到所有的楼层数")
//    public Map<String,Object> getfloornumber()
//    {
//        Map<String,Object> map = new HashMap<>();
//
//        QueryWrapper<Floor> floorQueryWrapper = new QueryWrapper<>();
//
//        floorQueryWrapper.groupBy("floor").orderByAsc("floor");
//
//        List<Floor> floors = floorMapper.selectList(floorQueryWrapper);
//
//        List<String> floorlist = new ArrayList<>();
//
//        floors.forEach(floor -> {
//
//            floorlist.add(floor.getFloor());
//
//        });
//
//        map.put("stat",true);
//
//        map.put("floorlist",floorlist);
//
//        return map;
//
//    }
//
//    @GetMapping(value = "/getfloorpage")
//    @ApiOperation(value = "通过楼层号来获取该楼层下所有的宿舍（进行分页的），并且一页默认5条数据")
//    public Map<String,Object> getfloorpage(@ApiParam(name = "floornumber",value = "楼层号，不传值则查找所有楼层下的所有宿舍") @RequestParam(name = "floornumber",required = false) String floornumber,
//                                        @ApiParam(name = "pc",value = "页数，不传值则代表第一页") @RequestParam(name = "pc",required = false) Integer pc)
//    {
//        Map<String,Object> map = new HashMap<>();
//
//        QueryWrapper<Floor> floorQueryWrapper = new QueryWrapper<>();
//
//        if (pc == null)
//        {
//            pc = 1;
//        }
//
//        Page<Floor> floorPage = new Page<Floor>(pc,5);
//
//        map.put("floor",floornumber);
//
//        floorQueryWrapper.allEq(map,false).orderByAsc("number");
//
//        map.clear();
//
//        floorMapper.selectPage(floorPage,floorQueryWrapper);
//
//        List<Floor> records = floorPage.getRecords();
//
//        if ( pc > floorPage.getPages())
//        {
//            map.put("stat",false);
//
//            map.put("message","页数越界，总页数：" + floorPage.getPages() + "，当前页数:" + floorPage.getCurrent());
//
//            return map;
//        }
//
//
//        map.put("stat",true);
//        map.put("records", records);
//        map.put("pages",floorPage.getPages());
//        map.put("page",records.size());
//        map.put("total", floorPage.getTotal());
//        map.put("current", floorPage.getCurrent());
//        map.put("hasPrevious",floorPage.hasPrevious());
//        map.put("hasNext",floorPage.hasNext());
//
//        return map;
//
//
//    }
//
//    @GetMapping(value = "/getfloor")
//    @ApiOperation(value = "通过楼层号来获取该楼层下所有的宿舍（不进行分页的）")
//    public Map<String,Object> getfloor(@ApiParam(name = "floornumber",value = "楼层号",required = true) @RequestParam(name = "floornumber") String floornumber)
//    {
//        Map<String,Object> map = new HashMap<>();
//
//        QueryWrapper<Floor> floorQueryWrapper = new QueryWrapper<>();
//
//        floorQueryWrapper.eq("floor",floornumber).orderByAsc("number");
//
//
//        List<Floor> floors = floorMapper.selectList(floorQueryWrapper);
//
//
//        map.put("stat",true);
//        map.put("floors",floors);
//        return map;
//
//
//    }
//
//
//}
//
//
//
//
//
//
//
//
//
//
//
//
//

















